#ifndef UC_BRFLTRAV_H
#define UC_BRFLTRAV_H 1

#include "zadesk.h"
#include "zrxobject.h"
#include "zrxboiler.h"
#include "ucbrgbl.h"
#include "ucbrtrav.h"


// forward class declarations
class UcBrFace;
class UcBrLoop;
class UcBrShellFaceTraverser;


class DllImpExp UcBrFaceLoopTraverser : public UcBrTraverser
{
public:
    UCRX_DECLARE_MEMBERS(UcBrFaceLoopTraverser);
    UcBrFaceLoopTraverser();
    UcBrFaceLoopTraverser(const UcBrFaceLoopTraverser& src);
    ~UcBrFaceLoopTraverser();

    // Assignment operator
    UcBrFaceLoopTraverser& operator =   (const UcBrFaceLoopTraverser& src);

    // Queries & Initialisers
    UcBr::ErrorStatus   setFace         (UcBrFace& face);
    UcBr::ErrorStatus   getFace         (UcBrFace& face) const;
    UcBr::ErrorStatus   setLoop         (UcBrLoop& loop);
    UcBr::ErrorStatus   getLoop         (UcBrLoop& loop) const;
    UcBr::ErrorStatus   setFaceAndLoop	(const UcBrLoop& loop);
    UcBr::ErrorStatus   setFace         (const UcBrFace& face);
    UcBr::ErrorStatus   setLoop         (const UcBrLoop& loop);
    UcBr::ErrorStatus   setFace         (const UcBrShellFaceTraverser& shellFaceTrav);
};


#endif

